1. Field of the Invention
Embodiments of the present invention relate generally to three-dimensional graphics processing pipelines and, more specifically, to a pixel shader bypass for low power graphics rendering.
2. Description of the Related Art
An application may sometimes issue commands to draw two-dimensional objects within a three-dimensional scene that is being rendered via a graphics processing pipeline. For example, an application may request that a graphics processing pipeline render constant color two-dimensional or textured two-dimensional polygons in order to display user interface elements or to display simple graphical elements within a three-dimensional rendered scene. There are several ways that graphics processing pipelines can display such two-dimensional objects.
In one approach, the application sends a command into the graphics processing pipeline to draw a polygon within the three-dimensional scene having specific desired characteristics. The desired two-dimensional object is then generated and displayed using the standard facilities of the graphics processing pipeline. One drawback of such an approach is that certain facilities of the graphics processing pipeline usually are not needed for drawing simple two-dimensional objects. Consequently, having the graphics processing pipeline generate two-dimensional objects wastes processing power.
In another approach, a two-dimensional blitter may be used to draw a two-dimensional object directly to the render target of the graphics processing pipeline, and the two-dimensional object is then displayed along with the rest of the data associated with the render target. One drawback of such an approach is that the two-dimensional blitter usually bypasses much or all of the graphics processing pipeline. Consequently, two-dimensional objects drawn via a two-dimensional blitter oftentimes are of lower quality than two-dimensional objects generated via a graphics processing pipeline. Another drawback of using a two-dimensional blitter is that coordinating operations between the two-dimensional blitter and the graphics processing pipeline is difficult, which may result in the graphics processing pipeline being idled and flushed in order to operate the two-dimensional blitter, thereby reducing performance.
As the foregoing illustrates, what is needed in the art is a method of displaying two-dimensional objects using lower power and without requiring the flushing and idling of a graphics processing pipeline.